/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.com.eurotrader.beanssessao;

import br.com.eurotrader.controller.CadGerEmpresaController;
import br.com.eurotrader.controller.CadGerEquipamentoController;
import br.com.eurotrader.controller.CadGerEstadoController;
import br.com.eurotrader.controller.CadGerGrupoEquipamentoController;
import br.com.eurotrader.controller.CadGerGrupoTipoProblemaController;
import br.com.eurotrader.controller.CadGerPaisController;
import br.com.eurotrader.controller.CadGerPerfilController;
import br.com.eurotrader.controller.CadGerTipoProblemaController;
import br.com.eurotrader.controller.CadGerUsuarioController;
import br.com.eurotrader.entidades.Empresa;
import br.com.eurotrader.entidades.Equipamento;
import br.com.eurotrader.entidades.Estado;
import br.com.eurotrader.entidades.Grupoequipamento;
import br.com.eurotrader.entidades.Grupotipoproblema;
import br.com.eurotrader.entidades.Pais;
import br.com.eurotrader.entidades.Perfil;
import br.com.eurotrader.entidades.Tipoproblema;
import br.com.eurotrader.entidades.Usuario;
import br.com.eurotrader.utils.FacesUtils;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import javax.enterprise.context.SessionScoped;
import javax.faces.bean.ManagedBean;
import javax.faces.model.SelectItem;

/**
 *
 * @author PROG01
 */
@SessionScoped
@ManagedBean
public class ListasTabelas implements Serializable {

    
    public ListasTabelas() {
    }        

    private List<Grupotipoproblema> grupoTipoProblema = null;
    
    public List<SelectItem> getGrupoTipoProblema() {
        if (grupoTipoProblema == null) {
            grupoTipoProblema = ((CadGerGrupoTipoProblemaController) FacesUtils.getManagedBean("cadGerGrupoTipoProblemaController")).getObjetoDao().pesq("SELECT e FROM Grupotipoproblema e", "ORDER BY e.descricao");
        }
        List<SelectItem> items = new ArrayList<SelectItem>();
        for (Grupotipoproblema e : grupoTipoProblema) {
            items.add(new SelectItem(e, e.getDescricao()));
        }
        return items;
    }
    
    private List<Estado> estados = null;

    public List<SelectItem> getEstados() {
        if (estados == null) {
            estados = ((CadGerEstadoController) FacesUtils.getManagedBean("cadGerEstadoController")).getObjetoDao().pesq("SELECT e FROM Estado e", "ORDER BY e.descricao");
        }
        List<SelectItem> items = new ArrayList<SelectItem>();
        for (Estado e : estados) {
            items.add(new SelectItem(e, e.getDescricao()));
        }
        return items;
    }
    private List<Grupoequipamento> grupoEquipamentos = null;

    public List<SelectItem> getGrupoEquipamentos() {
        if (grupoEquipamentos == null) {
            grupoEquipamentos = ((CadGerGrupoEquipamentoController) FacesUtils.getManagedBean("cadGerGrupoEquipamentoController")).getObjetoDao().pesq("SELECT e FROM Grupoequipamento e", "ORDER BY e.descricao");
        }
        List<SelectItem> items = new ArrayList<SelectItem>();
        for (Grupoequipamento e : grupoEquipamentos) {
            items.add(new SelectItem(e, e.getDescricao()));
        }
        return items;
    }
    
    private List<Empresa> empresas = null;

    public List<SelectItem> getEmpresas() {
        if (empresas == null) {
            empresas = ((CadGerEmpresaController) FacesUtils.getManagedBean("cadGerEmpresaController")).getObjetoDao().pesq("SELECT e FROM Empresa e", "ORDER BY e.razaoSocial");
        }
        List<SelectItem> items = new ArrayList<SelectItem>();
        items.add(new SelectItem(null, ""));
        for (Empresa e : empresas) {
            items.add(new SelectItem(e, e.getRazaoSocial()));
        }
        return items;
    }
    
    private List<Pais> pais = null;

    public List<SelectItem> getPais() {
        if (pais == null) {
            pais = ((CadGerPaisController) FacesUtils.getManagedBean("cadGerPaisController")).getObjetoDao().pesq("SELECT e FROM Pais e", "ORDER BY e.descricao");
        }
        List<SelectItem> items = new ArrayList<SelectItem>();
        for (Pais e : pais) {
            items.add(new SelectItem(e, e.getDescricao()));
        }
        return items;
    }
    
    
    private List<Perfil> perfis = null;
    
    public List<SelectItem> getPerfis() {
        if (perfis == null) {
            perfis = ((CadGerPerfilController) FacesUtils.getManagedBean("cadGerPerfilController")).getObjetoDao().pesq("SELECT e FROM Perfil e", "ORDER BY e.descricao");
        }
        List<SelectItem> items = new ArrayList<SelectItem>();
        items.add(new SelectItem(null, ""));
        for (Perfil e : perfis) {
            items.add(new SelectItem(e, e.getDescricao()));
        }
        return items;
    }
    
    
   
    
    private List<Usuario> usuarios = null;
    
    public List<SelectItem> getUsuarios() {
        if (usuarios == null) {
            usuarios = ((CadGerUsuarioController) FacesUtils.getManagedBean("cadGerUsuarioController")).getObjetoDao().pesq("SELECT e FROM Usuario e WHERE e.situacao = 'A' ", "ORDER BY e.nomePessoa");
        }
        List<SelectItem> items = new ArrayList<SelectItem>();        
        for (Usuario e : usuarios) {
            items.add(new SelectItem(e, e.getId() + " - " + e.getUsuario()));
        }
        return items;
    }
    
    private List<Equipamento> equipamentos = null;
    
    public List<SelectItem> getEquipamentos() {
        if (equipamentos == null) {
            equipamentos = ((CadGerEquipamentoController) FacesUtils.getManagedBean("cadGerEquipamentoController")).getObjetoDao().pesq("SELECT e FROM Equipamento e WHERE e.situacao = 'A' ", "ORDER BY e.descricao");
        }
        List<SelectItem> items = new ArrayList<SelectItem>();        
        items.add(new SelectItem(null, ""));
        for (Equipamento e : equipamentos) {
            items.add(new SelectItem(e, e.getDescricao()));
        }
        return items;
    }
    
    private List<Tipoproblema> tiposProblemas = null;
    
    public List<SelectItem> getTiposProblemas() {
        if (tiposProblemas == null) {
            tiposProblemas = ((CadGerTipoProblemaController) FacesUtils.getManagedBean("cadGerTipoProblemaController")).getObjetoDao().pesq("SELECT e FROM Tipoproblema e ", "ORDER BY e.descricao");
        }
        List<SelectItem> items = new ArrayList<SelectItem>();     
        items.add(new SelectItem(null, ""));
        for (Tipoproblema e : tiposProblemas) {
            items.add(new SelectItem(e, e.getDescricao()));
        }
        return items;
    }

    public void limparListas() {
        estados = null;
        perfis = null;
        usuarios = null;
        equipamentos = null;
        tiposProblemas = null;
    }

    //-------------------------------------------------------------------------------------------------------------------------------
    

    public List<SelectItem> getSituacao() {
        List<SelectItem> items = new ArrayList<SelectItem>();
        items.add(new SelectItem("A", "Ativo"));
        items.add(new SelectItem("I", "Inativo"));
        return items;
    }

    
    public List<SelectItem> getSituacoesUsuario() {
        List<SelectItem> items = new ArrayList<SelectItem>();
        items.add(new SelectItem(true, "Ativo"));
        items.add(new SelectItem(false, "Inativo"));
        return items;
    }
    
    public List<SelectItem> getSituacoesOrdemDeServico() {
        List<SelectItem> items = new ArrayList<SelectItem>();
        items.add(new SelectItem("A", "AGENDADO"));
        items.add(new SelectItem("B", "EM SERVIÇO"));
        items.add(new SelectItem("C", "FINALIZADO"));
        return items;
    }
    
     public List<SelectItem> getOpcoes() {
        List<SelectItem> items = new ArrayList<SelectItem>();
        items.add(new SelectItem("", ""));
        items.add(new SelectItem("N", "Não"));
        items.add(new SelectItem("S", "Sim"));
        return items;
    }
     
      public List<SelectItem> getOpcoesN() {
        List<SelectItem> items = new ArrayList<SelectItem>();
        items.add(new SelectItem("N", "Não"));
        items.add(new SelectItem("S", "Sim"));
        return items;
    }
     
    public List<SelectItem> getSituacoesPagamento() {
        List<SelectItem> items = new ArrayList<SelectItem>();
        items.add(new SelectItem("B", "Bloqueado"));
        items.add(new SelectItem("N", "Normal"));
        return items;
    }
    
}
